package com.boboPlanet.comm.utils;

import lombok.extern.slf4j.Slf4j;
import org.apache.commons.codec.digest.DigestUtils;
import org.bouncycastle.pqc.math.linearalgebra.ByteUtils;
import java.nio.charset.StandardCharsets;
import java.security.MessageDigest;

/**
 * @Description: TODO md5加密工具
 * @Author: mis_wu
 * @Date: 2023/2/14
 **/
@Slf4j
public class MD5PwdUtils {


    /**
     * 加密一
     * @param txt String
     * @return String
     */
    public static String encryption(String txt){
        return DigestUtils.md5Hex(txt);
    }

    /**
     * 加密二
     * @param txt String
     * @return String
     */
    public static String encryption2(String txt){
        // 加密后的16进制字符串
        String hexStr = "";
        try {
            // 此MessageDigest 类为应用程序提供信息摘要算法的功能
            MessageDigest md5 = MessageDigest.getInstance("MD5");
            // 转换为MD5码
            byte[] digest = md5.digest(txt.getBytes(StandardCharsets.UTF_8));
            hexStr = ByteUtils.toHexString(digest);
        } catch (Exception e) {
            log.error(e.getMessage(),e);
            log.error("login pwd encryption fail:{}",e.getMessage());
        }
        return hexStr;
    }

    /**
     * 加密三 todo: spring核心包
     * @param txt String
     * @return String
     */
    public static String encryption3(String txt){
        return org.springframework.util.DigestUtils.md5DigestAsHex(txt.getBytes(StandardCharsets.UTF_8));
    }

}
